﻿/**
* 视频监控画面控件 整理:feiyangqingyun(QQ:517216493) 2019-04-11
* 1. 可设定视频通道数量。
* 2. 支持双击最大化再次双击还原。
* 3. 支持4/6/8/9/13/16/25/36/64等通道布局。
* 4. 内置了选中边框高亮等样式。
* 5. 通用的视频通道布局盒子类，方便拓展其他布局。
*/
#ifndef VIDEOPANEL_H
#define VIDEOPANEL_H

#include "../generalui_global.h"
#include "../GlobalUIDef.h"

#include <QWidget>

class QGridLayout;
class QMenu;
class QLabel;

namespace GeneralUI {



	class VideoBox;

	class GENERALUI_EXPORT VideoPanel : public QWidget
	{
		Q_OBJECT

	public:
		explicit VideoPanel(QWidget *parent = 0);

	protected:
		bool eventFilter(QObject *watched, QEvent *event);

	private:
		bool videoMax;              //是否最大化
		int videoCount;             //最大通道数
		QString layoutType;         //当前画面类型
		QMenu *videoMenu;           //右键菜单
		QAction *actionFull;        //全屏动作
		QAction *actionPoll;        //轮询动作

		QGridLayout *gridLayout;    //通道表格布局
		QWidgetList widgets;        //视频控件集合
		VideoBox *videoBox;         //通道布局类

	public:
		QSize sizeHint()            const;
		QSize minimumSizeHint()     const;

		private slots:
		void initControl();
		void initForm();
		void initMenu();
		void full();
		void poll();

		private slots:
		void playAll();
		void snapOne();
		void snapAll();

	Q_SIGNALS:
		//全屏切换信号
		void fullScreen(bool full);
	};

}

#endif // VIDEOPANEL_H
